/*
* Linux 利用fork()系统调用创建进程
* Yu Sitong
* YuSitong1999@qq.com
* 2019-10-02
*/

#include<iostream>
#include<unistd.h>
#include<sys/types.h>
using namespace std;


int main()
{
    // 创建子进程1
    int pid1 = fork();
    if(pid1<0)
    {
        // 创建失败
        throw bad_alloc();
    }
    else if(pid1==0)
    {
        // 子进程1
        cout<<"B"<<endl;
        return 0;
    }
    clog<<"子进程1 pid : "<<pid1<<endl;

    // 创建子进程2
    int pid2 = fork();
    if(pid2<0)
    {
        // 创建失败
        throw bad_alloc();
    }
    else if(pid2==0)
    {
        // 子进程2
        cout<<"C"<<endl;
        return 0;
    }
    clog<<"子进程2 pid : "<<pid2<<endl;

    cout<<"A"<<endl;
    return 0;
}

